]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
lookingGlass: Add an easier way to see extension errors
authorJasper St. Pierre <jstpierre@mecheye.net>
Fri, 30 Sep 2011 07:58:44 +0000 (03:58 -0400)
committerJasper St. Pierre <jstpierre@mecheye.net>
Tue, 18 Oct 2011 17:13:48 +0000 (13:13 -0400)
Use the extensions tab to show errors belonging to each extension.

https://bugzilla.gnome.org/show_bug.cgi?id=660546

js/ui/lookingGlass.js

index b0c0f0662956c9ed873168dfa8e1fa58f9ac3083..6ac52478419fc7c765f2b40ae9842ee437551bb3 100644 (file)
@@ -686,6 +686,34 @@ Extensions.prototype = {
         Main.lookingGlass.close();
     },
 
+    _onViewErrors: function (actor) {
+        let meta = actor._extensionMeta;
+        let shouldShow = !actor._isShowing;
+
+        if (shouldShow) {
+            let errors = ExtensionSystem.errors[meta.uuid];
+            let errorDisplay = new St.BoxLayout({ vertical: true });
+            if (errors && errors.length) {
+                for (let i = 0; i < errors.length; i ++)
+                    errorDisplay.add(new St.Label({ text: errors[i] }));
+            } else {
+                /* Translators: argument is an extension UUID. */
+                let message = _("%s has not emitted any errors.").format(meta.uuid);
+                errorDisplay.add(new St.Label({ text: message }));
+            }
+
+            actor._errorDisplay = errorDisplay;
+            actor._parentBox.add(errorDisplay);
+            actor.label = _("Hide Errors");
+        } else {
+            actor._errorDisplay.destroy();
+            actor._errorDisplay = null;
+            actor.label = _("Show Errors");
+        }
+
+        actor._isShowing = shouldShow;
+    },
+
     _stateToString: function(extensionState) {
         switch (extensionState) {
             case ExtensionSystem.ExtensionState.ENABLED:
@@ -730,6 +758,13 @@ Extensions.prototype = {
             metaBox.add(webpage.actor);
         }
 
+        let viewerrors = new Link.Link({ label: _("Show Errors") });
+        viewerrors.actor._extensionMeta = meta;
+        viewerrors.actor._parentBox = box;
+        viewerrors.actor._isShowing = false;
+        viewerrors.actor.connect('clicked', Lang.bind(this, this._onViewErrors));
+        metaBox.add(viewerrors.actor);
+
         return box;
     }
 };